
package org.authsum.stitches.domain;

import java.io.Serializable;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for Content complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="Content">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="allContentFolders" type="{http://domain.stitches.authsum.org}ArrayOfContentFolder" minOccurs="0"/>
 *         &lt;element name="beforeUpdate" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
 *         &lt;element name="contentDef" type="{http://domain.stitches.authsum.org}ContentDef" minOccurs="0"/>
 *         &lt;element name="contentFolders" type="{http://domain.stitches.authsum.org}ArrayOfContentFolder" minOccurs="0"/>
 *         &lt;element name="contentVersions" type="{http://domain.stitches.authsum.org}ArrayOfContentVersion" minOccurs="0"/>
 *         &lt;element name="createDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="createdBy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="currentContentVersion" type="{http://domain.stitches.authsum.org}ContentVersion" minOccurs="0"/>
 *         &lt;element name="endDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="numberOfVersions" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="startDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="updateDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="updatedBy" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="viewSecureToken" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Content", propOrder = {
    "allContentFolders",
    "beforeUpdate",
    "contentDef",
    "contentFolders",
    "contentVersions",
    "createDate",
    "createdBy",
    "currentContentVersion",
    "endDate",
    "id",
    "name",
    "numberOfVersions",
    "startDate",
    "updateDate",
    "updatedBy",
    "version",
    "viewSecureToken"
})
public class Content
    implements Serializable
{

    @XmlElementRef(name = "allContentFolders", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<ArrayOfContentFolder> allContentFolders;
    @XmlElementRef(name = "beforeUpdate", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<Object> beforeUpdate;
    @XmlElementRef(name = "contentDef", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<ContentDef> contentDef;
    @XmlElementRef(name = "contentFolders", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<ArrayOfContentFolder> contentFolders;
    @XmlElementRef(name = "contentVersions", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<ArrayOfContentVersion> contentVersions;
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar createDate;
    @XmlElementRef(name = "createdBy", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<String> createdBy;
    @XmlElementRef(name = "currentContentVersion", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<ContentVersion> currentContentVersion;
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar endDate;
    @XmlElementRef(name = "id", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<Long> id;
    @XmlElementRef(name = "name", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<String> name;
    protected Integer numberOfVersions;
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar startDate;
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar updateDate;
    @XmlElementRef(name = "updatedBy", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<String> updatedBy;
    @XmlElementRef(name = "version", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<Long> version;
    @XmlElementRef(name = "viewSecureToken", namespace = "http://domain.stitches.authsum.org", type = JAXBElement.class)
    protected JAXBElement<String> viewSecureToken;

    /**
     * Gets the value of the allContentFolders property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentFolder }{@code >}
     *     
     */
    public JAXBElement<ArrayOfContentFolder> getAllContentFolders() {
        return allContentFolders;
    }

    /**
     * Sets the value of the allContentFolders property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentFolder }{@code >}
     *     
     */
    public void setAllContentFolders(JAXBElement<ArrayOfContentFolder> value) {
        this.allContentFolders = ((JAXBElement<ArrayOfContentFolder> ) value);
    }

    /**
     * Gets the value of the beforeUpdate property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Object }{@code >}
     *     
     */
    public JAXBElement<Object> getBeforeUpdate() {
        return beforeUpdate;
    }

    /**
     * Sets the value of the beforeUpdate property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Object }{@code >}
     *     
     */
    public void setBeforeUpdate(JAXBElement<Object> value) {
        this.beforeUpdate = ((JAXBElement<Object> ) value);
    }

    /**
     * Gets the value of the contentDef property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ContentDef }{@code >}
     *     
     */
    public JAXBElement<ContentDef> getContentDef() {
        return contentDef;
    }

    /**
     * Sets the value of the contentDef property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ContentDef }{@code >}
     *     
     */
    public void setContentDef(JAXBElement<ContentDef> value) {
        this.contentDef = ((JAXBElement<ContentDef> ) value);
    }

    /**
     * Gets the value of the contentFolders property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentFolder }{@code >}
     *     
     */
    public JAXBElement<ArrayOfContentFolder> getContentFolders() {
        return contentFolders;
    }

    /**
     * Sets the value of the contentFolders property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentFolder }{@code >}
     *     
     */
    public void setContentFolders(JAXBElement<ArrayOfContentFolder> value) {
        this.contentFolders = ((JAXBElement<ArrayOfContentFolder> ) value);
    }

    /**
     * Gets the value of the contentVersions property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentVersion }{@code >}
     *     
     */
    public JAXBElement<ArrayOfContentVersion> getContentVersions() {
        return contentVersions;
    }

    /**
     * Sets the value of the contentVersions property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfContentVersion }{@code >}
     *     
     */
    public void setContentVersions(JAXBElement<ArrayOfContentVersion> value) {
        this.contentVersions = ((JAXBElement<ArrayOfContentVersion> ) value);
    }

    /**
     * Gets the value of the createDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getCreateDate() {
        return createDate;
    }

    /**
     * Sets the value of the createDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setCreateDate(XMLGregorianCalendar value) {
        this.createDate = value;
    }

    /**
     * Gets the value of the createdBy property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getCreatedBy() {
        return createdBy;
    }

    /**
     * Sets the value of the createdBy property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setCreatedBy(JAXBElement<String> value) {
        this.createdBy = ((JAXBElement<String> ) value);
    }

    /**
     * Gets the value of the currentContentVersion property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ContentVersion }{@code >}
     *     
     */
    public JAXBElement<ContentVersion> getCurrentContentVersion() {
        return currentContentVersion;
    }

    /**
     * Sets the value of the currentContentVersion property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ContentVersion }{@code >}
     *     
     */
    public void setCurrentContentVersion(JAXBElement<ContentVersion> value) {
        this.currentContentVersion = ((JAXBElement<ContentVersion> ) value);
    }

    /**
     * Gets the value of the endDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getEndDate() {
        return endDate;
    }

    /**
     * Sets the value of the endDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setEndDate(XMLGregorianCalendar value) {
        this.endDate = value;
    }

    /**
     * Gets the value of the id property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Long }{@code >}
     *     
     */
    public JAXBElement<Long> getId() {
        return id;
    }

    /**
     * Sets the value of the id property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Long }{@code >}
     *     
     */
    public void setId(JAXBElement<Long> value) {
        this.id = ((JAXBElement<Long> ) value);
    }

    /**
     * Gets the value of the name property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getName() {
        return name;
    }

    /**
     * Sets the value of the name property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setName(JAXBElement<String> value) {
        this.name = ((JAXBElement<String> ) value);
    }

    /**
     * Gets the value of the numberOfVersions property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getNumberOfVersions() {
        return numberOfVersions;
    }

    /**
     * Sets the value of the numberOfVersions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setNumberOfVersions(Integer value) {
        this.numberOfVersions = value;
    }

    /**
     * Gets the value of the startDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getStartDate() {
        return startDate;
    }

    /**
     * Sets the value of the startDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setStartDate(XMLGregorianCalendar value) {
        this.startDate = value;
    }

    /**
     * Gets the value of the updateDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getUpdateDate() {
        return updateDate;
    }

    /**
     * Sets the value of the updateDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setUpdateDate(XMLGregorianCalendar value) {
        this.updateDate = value;
    }

    /**
     * Gets the value of the updatedBy property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getUpdatedBy() {
        return updatedBy;
    }

    /**
     * Sets the value of the updatedBy property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setUpdatedBy(JAXBElement<String> value) {
        this.updatedBy = ((JAXBElement<String> ) value);
    }

    /**
     * Gets the value of the version property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Long }{@code >}
     *     
     */
    public JAXBElement<Long> getVersion() {
        return version;
    }

    /**
     * Sets the value of the version property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Long }{@code >}
     *     
     */
    public void setVersion(JAXBElement<Long> value) {
        this.version = ((JAXBElement<Long> ) value);
    }

    /**
     * Gets the value of the viewSecureToken property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getViewSecureToken() {
        return viewSecureToken;
    }

    /**
     * Sets the value of the viewSecureToken property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setViewSecureToken(JAXBElement<String> value) {
        this.viewSecureToken = ((JAXBElement<String> ) value);
    }

}
